package com.jiang.starter.web.merge;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 在接口方法上添加此注解后
 * 该接口原方法将不会被执行
 * 而是将时间窗口内所有调用该接口的参数全部收集
 * 然后交由MergeExecutor一次性处理
 * @see MergeExecutor
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Merge {

    /**
     * 注明合并请求后的执行器的类
     */
    Class<? extends MergeExecutor> executor();

}
